/*

 */
package pl.kgierlicka.martixapplication;

import pl.kgierlicka.matrix.model.Matrix;

/**
 * Klasa aplikacji testowej do sprawdzania poprawności działania klasy pl.kgierlicka.matrix.Matrix 
 * @author kgierlicka
 */
public class MartixApplication {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        try {
          Matrix a = new Matrix(3,3);
          double[][] temp = {{8, 1, 5},
                             {1, 2, 8},
                             {1, 1, 0}};
        
          a.setMatrix(temp);
        
        
          Matrix b = new Matrix(2,5);
          double[][] temp2 = {{1, 2, 3, 6, 8},
                              {6, 5, 4, 0, 6}};
        
          b.setMatrix(temp2);
          
          Matrix c = new Matrix(5,3);
          double[][] temp3 = {{1, 2, 4},
                              {6, 5, 9},
                              {0, 2, 0},
                              {8, 3, 3},
                              {7, 1, 2}};
        
          c.setMatrix(temp3);
          
          Matrix d = new Matrix(3,3);
          double[][] temp4 = {{1, 9, 5},
                             {1, 4, 3},
                             {5, 1, 8}};
        
          d.setMatrix(temp4);
        
          // Wypisanie danych wejściowych
          System.out.println("Macierz a: " + a.toString());
          System.out.println("Macierz b: " + b.toString());
          System.out.println("Macierz c: " + c.toString());
          System.out.println("Macierz d: " + d.toString());
          
          Matrix result;
          // Macierz odwrotna
          result = a.invert();
          System.out.println("Macierz odwrotna do a: \n" + result.toString() + " \n");
          
          // Suma macierzy
          result = a.add(d);
          System.out.println("Suma macierzy a i d: \n" + result.toString() + " \n");
          
          // Różnica macierzy
          result = a.subtract(d);
          System.out.println("Różnica macierzy a i d: \n" + result.toString() + " \n");
          
          // Mnożenie macierzy
          result = b.multiply(c);
          System.out.println("Iloczyn macierzy b i c: \n" + result.toString() + " \n");
          
          // Mnożenie macierzy przez liczbę
          result = b.multiply(7.8);
          System.out.println("Iloczyn macierzy b przez liczbę 7.8: \n" + result.toString() + " \n");
          
          // Dzielenie macierzy
          result = a.divide(d);
          System.out.println("Iloraz macierzy a przez d: \n" + result.toString() + " \n");
          
          
        
        } catch (Exception e)  {
            
            System.out.println(e.toString());
            
        }
        
        
    }
}
